iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
1
自我挑戰組

微程式語言白話文運動系列 第 7

微聊 MVC 模式 - Model 二部曲

  • 分享至 

  • xImage
  •  

SQL是什麼呢? 維基怎麼說

承接上一則提到的資料庫,一般來說當我們在做文書處理時,會將資料用 Excel 做整理 儲存,但對於網站來說, Excel 所能夠存儲的資料量真的太小,且無法有效拿取資料,所以我們會使用資料庫的協助,SQL(Structured Query Language),是一種資料庫的結構化查詢語言,對資料庫做溝通的程式語言。明確的說是在操作資料庫的程式語言,透過 SQL 語法建立新的資料庫、資料表、欄位及、索引等,或建立查詢表、排序、過濾資料、查詢、修改、新增及刪除資料等動作。

Model Scope

微人一直都沒有辦法的理解這是什麼,直到現在寫鐵人賽,才驚覺要仔細地來研究研究。今天用一個非常白話的方式來聊聊好了。韓式料理中豐富的小菜是挺出名的,但若是有限的時間吃一餐並且多樣的菜色,飯捲就是一個相當好的選擇。
Model Scopes 就像這裡所說的飯捲的概念,是一個在 Rails 環境中提供給 Model使用的方法,主要功能是將經常使用的條件式宣告起來,讓我們的程式碼能夠變得乾淨且易讀。例如:網站上呈現「特價商品區」,這時候需要在 Controller 下條件式選取特價商品出來。但條件更動是一直在改變的,若突然需要增加限制顯示「低於300元」條件,對於後端來說,程式碼的維護則是越來越不容易。因此,Model Scopes方法,將條件是宣告起來當組合技使用,對於後端程式開發非常方便。

scope :published_books, -> { where(publish_state: "on-shelf").order(id: :desc)}
scope :unpublish_books, -> { where(publish_state: "off-shelf”)}

就像這裡我們針對出版的書籍做一個條件式的宣告
(上架書籍:狀態是已發布並讓id排序從大到小)
(下架書籍:狀態是未發佈)


上一篇
微聊 MVC 模式 - Model 首部曲
下一篇
微聊 MVC 模式 - Model 三部曲
系列文
微程式語言白話文運動30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言